package com.nondo.dean.auth.provider;

import com.nondo.dean.auth.common.bean.CompanyTree;
import com.nondo.dean.auth.common.bean.OfficeItem;
import com.nondo.dean.auth.common.bean.OfficeTree;
import com.nondo.dean.auth.domain.Office;
import com.nondo.dean.common.web.Page;
import com.nondo.dean.common.web.Query;
import com.nondo.dean.common.web.View;

import java.util.List;

/**
 * project：dean-cloud
 *
 * @author linfeng @ nondo
 * @date 2018/4/23
 */
public interface OfficeManager {

    /**
     * 部门保存请求
     *
     * @param item 部门信息
     * @return 消息提示
     */
    View<String> requestSave(OfficeItem item);

    /**
     * 删除部门请求
     *
     * @param officeId 部门ID
     * @return 消息提示
     */
    View<String> requestDelete(Long officeId);

    /**
     * 删除部门请求
     *
     * @param officeIds 部门编号数组
     * @return 消息提示
     */
    View<String> requestMultiDelete(Long[] officeIds);

    /**
     * 删除部门请求
     *
     * @param item 部门信息
     * @return 消息提示
     */
    View<Page<Office>> requestQuery(Query<OfficeItem> item);

    /**
     * 部门树状结构
     *
     * @return 返回注册成功或失败的信息
     */
    View<List<OfficeTree>> requestOfficeTreeOfAll(Long companyId);

    /**
     * 部门请求
     *
     * @param officeId 部门ID
     * @return 消息提示
     */
    View<Office> requestOfficeOne(Long officeId);

}
